</para>
<para>
The list of keywords include "lat", "lon", "desc", "name",
- "notes", "alt", and "url". Fuller spellings (i.e. "longitude") may
- be used.
+ "notes", "alt", "urm z", "utm n", "utm e", and "url".
+ Fuller spellings (i.e. "longitude") may be used.
</para>
<para>
A typical file may be:
int notescol;
int altcol;
int urlcol;
+ int utmzcol; /* Zone */
+ int utmncol; /* Northing */
+ int utmecol; /* Easting */
} unicsv_fieldpos;
static double unicsv_altscale;
unicsv_fondle_header(char *ibuf)
{
char *s;
- int i;
+ unsigned int i;
int *ip = &unicsv_fieldpos.firstval;
for (i = 0; i < sizeof(unicsv_fieldpos) / sizeof(int); i++, ip++) {
unicsv_altscale = 0.3048;
}
}
- else if (UNICSV_IS("url")) {
+ else if (UNICSV_CONTAINS("url")) {
unicsv_fieldpos.urlcol = i;
}
+ else if (UNICSV_CONTAINS("utm z")) {
+ unicsv_fieldpos.utmzcol = i;
+ }
+ else if (UNICSV_CONTAINS("utm n")) {
+ unicsv_fieldpos.utmncol = i;
+ }
+ else if (UNICSV_CONTAINS("utm e")) {
+ unicsv_fieldpos.utmecol = i;
+ }
/* todo: speed, course, hdop, sat, date, time, maybe a few others */
}
}
char *s;
waypoint *wpt;
int i;
+ int utmz = -9999;
+ double utme;
+ double utmn;
s = csv_lineparse(ibuf, unicsv_fieldsep, "", 0);
if (s == NULL) return;
else if (i == unicsv_fieldpos.altcol) {
wpt->altitude = atof(s) * unicsv_altscale;
}
+ else if (i == unicsv_fieldpos.utmzcol) {
+ utmz = atoi(s);
+ }
+ else if (i == unicsv_fieldpos.utmecol) {
+ utme = atof(s);
+ }
+ else if (i == unicsv_fieldpos.utmncol) {
+ utmn = atof(s);
+ }
+ }
+ if (utmz != -9999) {
+ GPS_Math_UTM_EN_To_WGS84(&wpt->latitude, &wpt->longitude,
+ utme, utmn, utmz, 'N');
}
waypt_add(wpt);
}